package DAO;

import Conexion.Conexion;
import VO.asignatura;
import VO.estudiante;
import VO.nota;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;

/**
 *
 * @author JesseniaJL
 */
public class NotaDAO 
{
    
    Conexion con;
    public NotaDAO() throws Exception
    {
        con = new Conexion();
        con.ConexionPostgres();
    }
    public void registrar_nota( String valor_nota,
                  String id_estudiante,String documento_estudiante, String id_asignatura, String periodo) throws Exception // CREAR estudiante
    {   
        String msj="";
     
        String sql="select * from nota where documento_estudiante ='"+documento_estudiante+"' and id_asignatura='"+id_asignatura+"' and periodo='"+periodo+"'";
   
        ResultSet rs = con.consultar(sql);
        
        if(!rs.next())
        {
          String consulta = "insert into nota(valor_nota, id_estudiante, documento_estudiante, id_asignatura, periodo) "
                  + "values('"+valor_nota+"','"+id_estudiante
                  +"','"+documento_estudiante+"','"+id_asignatura+"','"+periodo+"')";
          con.actualizar(consulta);
          msj="NOTA CREADA";
        }
        else
        {
            msj="YA EXISTE NOTA EN ESE PERIODO";
        }
        System.out.println(msj);
    }
    
     public ArrayList Consultar_Nota_Estudiante(String cod) throws SQLException, ParseException
    {
        ArrayList lista = new ArrayList();
        nota not = null;
        
        String query = "select * from nota where documento_estudiante='" + cod + "'";

        ResultSet rsu = con.consultar(query);
        while (rsu.next()) 
        {
                not = new nota();
                
                not.setid_nota(rsu.getString("id_nota"));                
                not.setvalor_nota(rsu.getString("valor_nota"));
                not.setid_estudiante(rsu.getString("id_estudiante"));
                not.setdocumento_estudiante(rsu.getString("documento_estudiante"));
                not.setid_asignatura(rsu.getString("id_asignatura"));
                not.setperiodo(rsu.getString("periodo"));
                
                lista.add(not);

         }
        return lista;
    }
     
     
      public String Consultar_Notas(String documento_estudiante) throws  ParseException, SQLException{
       ArrayList lista = new ArrayList();
        nota not = null;
        estudiante est=null;
        asignatura a=null;
        String dato="";
        String query = "select e.primer_nombre_estudiante,n.periodo,n.valor_nota,a.nombre_asignatura from estudiante as e inner join nota as n on (e.documento_estudiante=n.documento_estudiante)"
                + " inner join asignatura as a on (n.id_asignatura=a.id_asignatura) where e.documento_estudiante='+1234+'"; 
        ResultSet rsu = con.consultar(query);
        ResultSetMetaData rsm=rsu.getMetaData();
        dato+="table class=\"table-bordered table-condensed\">";
         dato+="<tr>";
        for(int i=1;i<=rsm.getColumnCount();i++){
            dato+="<th>"+rsm.getColumnName(i)+"</th>";
          
        }
        dato+="</tr>";
        while(rsu.next()){
        
        
        dato+="<tr>";
        for(int i=1;i<=rsm.getColumnCount();i++){
           // datos+="<td>"+rsm.getColumnName(i)+"</td>";
              dato+="<td>"+rsu.getString(i)+"</td>";
        }
        dato+="</tr>";
        
          }
        dato+="</table>";
        
        return dato;
    
        }
        
       
     
        
         
      public ArrayList ver_notas(String documento_estudinte) throws  ParseException, SQLException{
 ArrayList lista = new ArrayList();
        nota not = null;
        estudiante est=null;
        asignatura a=null;
        String dato="";
        String query = "select e.primer_nombre_estudiante,n.periodo,n.valor_nota,a.nombre_asignatura from estudiante as e inner join nota as n on (e.documento_estudiante=n.documento_estudiante)"
                + " inner join asignatura as a on (n.id_asignatura=a.id_asignatura) where e.documento_estudiante='+1234+'"; 
        ResultSet rsu = con.consultar(query);
        while (rsu.next()) {
            not = new nota();
            a=new asignatura();
            est=new estudiante();
            not.setperiodo(rsu.getString("periodo"));
            not.setvalor_nota(rsu.getString("valor_nota"));            
            a.setnombre_asignatura(rsu.getString("nombre_asignatura"));
            est.setprimer_nombre_estudiante(rsu.getString("primer_nombre_estudiante"));
            est.setprimer_apellido_estudiante(rsu.getString("primer_apellido_estudiante"));
            
            lista.add(not);
            lista.add(a);
            lista.add(est);
        

            }
        return lista;
         }
        
}  
    
   
      
    


